#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<stdlib.h>
void test01()
{
  FILE* pf = fopen("data.txt","w");
  if(pf==NULL)
  {
    printf("%s\n",strerror(errno));
    exit(-1);
  }
  char i=0;
  for(i='a';i<='z';i++)
  {
    fputc(i,pf);//输出字符操作
  }

  fclose(pf);
  pf=NULL;

  FILE* pf1 = fopen("data.txt","r");
  if(pf1==NULL)
  {
    printf("%s\n",strerror(errno));
    exit(-1);
  }
  char ch = 0;
  while((ch=getc(pf1))!=EOF)
  {
    printf("%c ",ch);
  }
  printf("\n");
  fclose(pf1);
  pf1 = NULL;

  //打开文件
  FILE* pf2 = fopen("data.txt", "r");
  if (pf2 == NULL)
  {
    printf("%s\n", strerror(errno));
    //return 1;//文件打开失败，失败返回
  }
  //对文件进行输入字符串操作
  char arr[10] = { 0 };
  fgets(arr, 6, pf2);
  printf("%s\n", arr);
  //关闭文件
  fclose(pf2);
  pf2 = NULL;

  //打开文件
  FILE* pf3 = fopen("data.txt", "wb");
  if (pf3 == NULL)
  {
    printf("%s\n", strerror(errno));
    //return 1;//文件打开失败，失败返回
  }
  //对文件以二进制形式进行输出操作
  int arr1[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  fwrite(arr1, sizeof(int), 10, pf3);
  //关闭文件
  fclose(pf3);
  pf3 = NULL;
}

void test02()
{
 // FILE* pf = fopen("data.txt","w");
 // if(pf==NULL)
 // {
 //   printf("%s\n",strerror(errno));
 //   exit(-1);
 // }
 // fputs("hello world",pf);

  FILE* pf1 = fopen("data.txt","r");
  char ch = fgetc(pf1);
  printf("%c\n", ch);//观察第一次读取到的字符
  ch = fgetc(pf1);
  printf("%c\n", ch);//观察第二次读取到的字符
  printf("%ld\n",ftell(pf1));
  fclose(pf1);
 // fclose(pf);
  //pf=NULL;
  pf1=NULL;
}

void test03()
{

	//打开文件
	FILE* pf = fopen("data.txt", "r");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
//		return 1;//文件打开失败，失败返回
	}
	//读取文件中的数据
	int ch = 0;
	while ((ch = fgetc(pf)) != EOF)
	{
		printf("%c", ch);
	}
	if (ferror(pf))
	{
		printf("文件指针使用时，发生错误而结束\n");
	}
	else if (feof(pf))
	{
		printf("文件指针使用时，读取到文件末尾而结束\n");
	}
	//关闭文件
	fclose(pf);
	pf = NULL;
	

}


int main()
{ 
  test03();
  return 0;
}
